home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX 6.2 Applications 1996 May
/
SGI IRIX 6.2 Applications 1996 May.iso
/
dist
/
impr_dev.idb
/
usr
/
include
/
pod.h.z
/
pod.h
Wrap
C/C++ Source or Header
|
1996-05-06
|
20KB
|
550 lines
/**************************************************************************
* *
* Copyright (c) 1992 Silicon Graphics, Inc. *
* All Rights Reserved *
* *
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF SGI *
* *
* The copyright notice above does not evidence any actual of intended *
* publication of such source code, and is an unpublished work by Silicon *
* Graphics, Inc. This material contains CONFIDENTIAL INFORMATION that is *
* the property of Silicon Graphics, Inc. Any use, duplication or *
* disclosure not specifically authorized by Silicon Graphics is strictly *
* prohibited. *
* *
* RESTRICTED RIGHTS LEGEND: *
* *
* Use, duplication or disclosure by the Government is subject to *
* restrictions as set forth in subdivision (c)(1)(ii) of the Rights in *
* Technical Data and Computer Software clause at DFARS 52.227-7013, *
* and/or in similar or successor clauses in the FAR, DOD or NASA FAR *
* Supplement. Unpublished - rights reserved under the Copyright Laws of *
* the United States. Contractor is SILICON GRAPHICS, INC., 2011 N. *
* Shoreline Blvd., Mountain View, CA 94039-7311 *
**************************************************************************
*
* File: pod.h
*
* Description: Primary include file for libpod, the printer object
* database API library. This file contains the declarations and
* information required by application programs and should be
* included by any program that references functions in libpod.
*
**************************************************************************/
#ident "$Revision: 1.10 $"
#ifndef _PD_POD_H
#define _PD_POD_H
#include <sys/types.h>
/* File naming and location information */
#define PD_DEF_POD_PATH "/usr/spool/lp/pod"
#define PD_CONFIG_SUFFIX ".config"
#define PD_STATUS_SUFFIX ".status"
#define PD_LOG_SUFFIX ".log"
/* Landscape page size name suffix */
#define PD_SIZE_NAME_SUFFIX "_land"
/* Network parameters */
#define PD_DEF_NET_TIMEOUT 60 /* Default network communications */
/* timeout period in seconds */
/* General information */
#define PD_STR_MAX 128
#define PD_MESSAGE_MAX 5
#define PD_LOG_ALL 0
/* Operational status states (PDStatusStruct: operational_status field) */
#define PD_STATUS_IDLE 0
#define PD_STATUS_BUSY 1
#define PD_STATUS_FAULTED 2
#define PD_STATUS_UNAVAILABLE 3
/* Raster orientation bits (PDSizeTableStruct: raster_definition field) */
#define PD_RASTER_R_TO_L 0x01
#define PD_RASTER_B_TO_T 0x02
#define PD_RASTER_LONG 0x04
/* Variable page size bits (PDSizeTableStruct: variable_page_size field) */
#define PD_PAGE_VAR_WIDTH 0x01
#define PD_PAGE_VAR_HEIGHT 0x02
/* Media types (PDStatusStruct: media_type field) */
#define PD_MEDIA_PAPER 0
#define PD_MEDIA_TRANSPARENCY 1
#define PD_MEDIA_OTHER 2
#define PD_MEDIA_UNKNOWN 3
/* Data description code (PDStatusStruct: number_of_colors field) */
/* Masks */
#define PD_DATA_NUMCOLORS_MASK 0x000000FF
#define PD_DATA_COLORSPACE_MASK 0x0000FFFF
#define PD_DATA_DEPTH_MASK 0x00FF0000
#define PD_DATA_FORMAT_MASK 0xFF000000
/* Colorspaces */
#define PD_DATA_K 0x00000001
#define PD_DATA_CMY 0x00000003
#define PD_DATA_CMYK 0x00000004
#define PD_DATA_W 0x00000101
#define PD_DATA_RGB 0x00000103
#define PD_DATA_YMC 0x00000203
#define PD_DATA_YMCK 0x00000204
#define PD_DATA_KCMY 0x00000304
/* Depths */
#define PD_DATA_DEPTH1 0x00000000 /* 1 bit per pixel */
#define PD_DATA_DEPTH4 0x00040000 /* 4 bit per pixel */
#define PD_DATA_DEPTH8 0x00080000 /* 8 bit per pixel */
/* Formats */
#define PD_DATA_CHUNKY 0x00000000
#define PD_DATA_BANDED 0x02000000
#define PD_DATA_PLANAR 0x04000000
/* Macros */
#define PD_GET_NUMCOLORS(c) ((c) & PD_DATA_NUMCOLORS_MASK)
#define PD_GET_COLORSPACE_CODE(c) ((c) & PD_DATA_COLORSPACE_MASK)
#define PD_GET_DEPTH_CODE(c) ((c) & PD_DATA_DEPTH_MASK)
#define PD_GET_FORMAT_CODE(c) ((c) & PD_DATA_FORMAT_MASK)
/* Media standard (PDInfoStruct: media_standard field) */
#define PD_STANDARD_AMERICAN 0
#define PD_STANDARD_METRIC 1
/* Media size definitions (PDStatusStruct: media_size field) */
/* The media size codes are encoded as follows:
7 (MSB) Orientation: 0 = Portrait, 1 = Landscape
6 Standard: 0 = American, 1 = Metric
5-0 (LSB) Size Code
Bits 8-31 are used by the PD_SIZE_CURRENT code.
Media size names are obtained simply by removing the 'PD_SIZE'
prefix from the size code token. For example, the page name
corresponding to PD_SIZE_A_LAND is 'A_LAND'. Note that those
size codes that are synonyms for other page size codes do not
have a recognized page name. For these codes use the real code
as the basis for the page name.
*/
/* Special codes */
#define PD_SIZE_METRIC 0x00000040
#define PD_SIZE_LANDSCAPE 0x00000080
#define PD_SIZE_VARIABLE 0x0000003F
#define PD_SIZE_CURRENT 0xFFFFFFFF
/* Standard American - portrait */
#define PD_SIZE_MONARCH 0x00000020 /* 3.87 X 7.50 in. */
#define PD_SIZE_COM10 0x00000030 /* 4.12 X 9.50 in. */
#define PD_SIZE_STMT 0x00000000 /* 5.50 X 8.50 in. */
#define PD_SIZE_EXEC 0x00000001 /* 7.50 X 10.00 in. */
#define PD_SIZE_ASM 0x00000031 /* 7.68 X 10.16 in. */
#define PD_SIZE_LETTERSM PD_SIZE_ASM
#define PD_SIZE_A 0x00000002 /* 8.50 X 11.00 in. */
#define PD_SIZE_LETTER PD_SIZE_A
#define PD_SIZE_LEGAL 0x00000012 /* 8.50 X 14.00 in. */
#define PD_SIZE_B 0x00000004 /* 11.00 X 17.00 in. */
#define PD_SIZE_TABLOID PD_SIZE_B
#define PD_SIZE_12X18 0x00000005 /* 12.00 X 18.00 in. */
#define PD_SIZE_C 0x00000006 /* 17.00 X 22.00 in. */
#define PD_SIZE_D 0x00000008 /* 22.00 X 34.00 in. */
#define PD_SIZE_E 0x0000000A /* 34.00 X 44.00 in. */
/* Standard American - landscape */
#define PD_SIZE_MONARCH_LAND 0x000000A0 /* 7.50 X 3.87 in. */
#define PD_SIZE_COM10_LAND 0x000000B0 /* 9.50 X 4.12 in. */
#define PD_SIZE_STMT_LAND 0x00000080 /* 8.50 X 5.50 in. */
#define PD_SIZE_EXEC_LAND 0x00000081 /* 10.00 X 7.50 in. */
#define PD_SIZE_ASM_LAND 0x000000B1 /* 10.16 X 7.68 in. */
#define PD_SIZE_LETTERSM_LAND PD_SIZE_ASM_LAND
#define PD_SIZE_A_LAND 0x00000082 /* 11.00 X 8.50 in. */
#define PD_SIZE_LETTER_LAND PD_SIZE_A_LAND
#define PD_SIZE_LEGAL_LAND 0x00000092 /* 14.00 X 8.50 in. */
#define PD_SIZE_B_LAND 0x00000084 /* 17.00 X 11.00 in. */
#define PD_SIZE_LEDGER_LAND PD_SIZE_B_LAND
#define PD_SIZE_LEDGER PD_SIZE_B_LAND
#define PD_SIZE_12X18_LAND 0x00000085 /* 18.00 X 12.00 in. */
#define PD_SIZE_C_LAND 0x00000086 /* 22.00 X 17.00 in. */
#define PD_SIZE_D_LAND 0x00000088 /* 34.00 X 22.00 in. */
#define PD_SIZE_E_LAND 0x0000008A /* 44.00 X 34.00 in. */
/* Standard Metric - portrait */
#define PD_SIZE_A10 0x00000060 /* 26 X 37 mm */
#define PD_SIZE_A9 0x00000062 /* 37 X 52 mm */
#define PD_SIZE_A8 0x00000064 /* 52 X 74 mm */
#define PD_SIZE_A7 0x00000066 /* 74 X 105 mm */
#define PD_SIZE_A6 0x00000068 /* 105 X 148 mm */
#define PD_SIZE_A5 0x00000040 /* 148 X 210 mm */
#define PD_SIZE_A4 0x00000042 /* 210 X 297 mm */
#define PD_SIZE_A4SP 0x00000052 /* 210 X 356 mm */
#define PD_SIZE_A3 0x00000044 /* 297 X 420 mm */
#define PD_SIZE_A2 0x00000046 /* 420 X 594 mm */
#define PD_SIZE_A1 0x00000048 /* 594 X 841 mm */
#define PD_SIZE_A0 0x0000004A /* 841 X 1189 mm */
#define PD_SIZE_B10 0x00000061 /* 31 X 44 mm */
#define PD_SIZE_B9 0x00000063 /* 44 X 62 mm */
#define PD_SIZE_B8 0x00000065 /* 62 X 88 mm */
#define PD_SIZE_B7 0x00000067 /* 88 X 125 mm */
#define PD_SIZE_B6 0x00000069 /* 125 X 176 mm */
#define PD_SIZE_B5 0x00000041 /* 176 X 250 mm */
#define PD_SIZE_B4 0x00000043 /* 250 X 353 mm */
#define PD_SIZE_B3 0x00000045 /* 353 X 500 mm */
#define PD_SIZE_B2 0x00000047 /* 500 X 707 mm */
#define PD_SIZE_B1 0x00000049 /* 707 X 1000 mm */
#define PD_SIZE_B0 0x0000004B /* 1000 X 1414 mm */
#define PD_SIZE_DL 0x00000070 /* 110 X 220 mm */
#define PD_SIZE_C7 0x00000072 /* 81 X 114 mm */
#define PD_SIZE_C76 0x00000073 /* 81 X 162 mm */
#define PD_SIZE_C6 0x00000074 /* 114 X 162 mm */
#define PD_SIZE_C5 0x00000075 /* 162 X 229 mm */
#define PD_SIZE_C4 0x00000076 /* 229 X 324 mm */
#define PD_SIZE_C3 0x00000077 /* 324 X 458 mm */
#define PD_SIZE_C2 0x00000078 /* 458 X 648 mm */
#define PD_SIZE_C1 0x00000079 /* 648 X 917 mm */
#define PD_SIZE_C0 0x0000007A /* 917 X 1297 mm */
/* Standard Metric - landscape */
#define PD_SIZE_A10_LAND 0x000000E0 /* 37 X 26 mm */
#define PD_SIZE_A9_LAND 0x000000E2 /* 52 X 37 mm */
#define PD_SIZE_A8_LAND 0x000000E4 /* 74 X 52 mm */
#define PD_SIZE_A7_LAND 0x000000E6 /* 105 X 74 mm */
#define PD_SIZE_A6_LAND 0x000000E8 /* 148 X 105 mm */
#define PD_SIZE_A5_LAND 0x000000C0 /* 210 X 148 mm */
#define PD_SIZE_A4_LAND 0x000000C2 /* 297 X 210 mm */
#define PD_SIZE_A4SP_LAND 0x000000D2 /* 356 X 210 mm */
#define PD_SIZE_A3_LAND 0x000000C4 /* 420 X 297 mm */
#define PD_SIZE_A2_LAND 0x000000C6 /* 594 X 420 mm */
#define PD_SIZE_A1_LAND 0x000000C8 /* 841 X 594 mm */
#define PD_SIZE_A0_LAND 0x000000CA /* 1189 X 841 mm */
#define PD_SIZE_B10_LAND 0x000000E1 /* 44 X 31 mm */
#define PD_SIZE_B9_LAND 0x000000E3 /* 62 X 44 mm */
#define PD_SIZE_B8_LAND 0x000000E5 /* 88 X 62 mm */
#define PD_SIZE_B7_LAND 0x000000E7 /* 125 X 88 mm */
#define PD_SIZE_B6_LAND 0x000000E9 /* 176 X 125 mm */
#define PD_SIZE_B5_LAND 0x000000C1 /* 250 X 176 mm */
#define PD_SIZE_B4_LAND 0x000000C3 /* 353 X 250 mm */
#define PD_SIZE_B3_LAND 0x000000C5 /* 500 X 353 mm */
#define PD_SIZE_B2_LAND 0x000000C7 /* 707 X 500 mm */
#define PD_SIZE_B1_LAND 0x000000C9 /* 1000 X 707 mm */
#define PD_SIZE_B0_LAND 0x000000CB /* 1414 X 1000 mm */
#define PD_SIZE_DL_LAND 0x000000F0 /* 220 X 110 mm */
#define PD_SIZE_C7_LAND 0x000000F2 /* 114 X 81 mm */
#define PD_SIZE_C76_LAND 0x000000F3 /* 162 X 81 mm */
#define PD_SIZE_C6_LAND 0x000000F4 /* 162 X 114 mm */
#define PD_SIZE_C5_LAND 0x000000F5 /* 229 X 162 mm */
#define PD_SIZE_C4_LAND 0x000000F6 /* 324 X 229 mm */
#define PD_SIZE_C3_LAND 0x000000F7 /* 458 X 324 mm */
#define PD_SIZE_C2_LAND 0x000000F8 /* 648 X 458 mm */
#define PD_SIZE_C1_LAND 0x000000F9 /* 917 X 648 mm */
#define PD_SIZE_C0_LAND 0x000000FA /* 1297 X 917 mm */
/* Printer status message codes (PDMessageStruct: message_code field) */
/* Note that these are NOT PDerrno error codes. The message
corresponding to each code can be found in the file
/usr/impressario/doc/PDMessages.inc.
*/
/* Message code type masks */
/* Note that if a message is not a warning or error, it
is informational
*/
#define PD_MSG_MASK_VERSION 0x00010000
#define PD_MSG_MASK_WARNING 0x01000000
#define PD_MSG_MASK_ERROR 0x02000000
/* Information codes */
#define PD_INFO_JOB_START 0x00000010
#define PD_INFO_JOB_END 0x00000011
/* Warning codes */
#define PD_WARN_MANUAL_FEED 0x01080101
#define PD_WARN_REQ_PAPER 0x01080102
#define PD_WARN_REQ_TRANSPARENCY 0x01080103
#define PD_WARN_INK_LOW 0x01080200
/* Error codes */
#define PD_ERROR_WAIT 0x02010000
#define PD_ERROR_WARMING_UP 0x02010100
#define PD_ERROR_SELF_TEST 0x02010200
#define PD_ERROR_MAINTENANCE 0x02010201
#define PD_ERROR_RESETTING 0x02010400
#define PD_ERROR_MEDIA_MOVEMENT 0x02010800
#define PD_ERROR_TIMEOUT 0x02011000
#define PD_ERROR_OFFLINE 0x02020000
#define PD_ERROR_DESELECTED 0x02020100
#define PD_ERROR_COVER_OPEN 0x02020200
#define PD_ERROR_DOOR_OPEN 0x02020201
#define PD_ERROR_MEDIA_JAM 0x02040000
#define PD_ERROR_PAPER_JAM 0x02040100
#define PD_ERROR_PAPER_ENTRY_JAM 0x02040101
#define PD_ERROR_PAPER_PATH_JAM 0x02040102
#define PD_ERROR_PAPER_EXIT_JAM 0x02040180
#define PD_ERROR_TRANSFER_JAM 0x02040200
#define PD_ERROR_MEDIA_OUT 0x02080000
#define PD_ERROR_PAPER_OUT 0x02080100
#define PD_ERROR_INK_OUT 0x02080200
#define PD_ERROR_TRANSFER_OUT 0x02080201
#define PD_ERROR_TONER_OUT 0x02080202
#define PD_ERROR_FUSER_OUT 0x02080400
#define PD_ERROR_DRUM_OUT 0x02080800
#define PD_ERROR_CLEANER_OUT 0x02081000
#define PD_ERROR_FLUID_OUT 0x02081001
#define PD_ERROR_OTHER_FAULT 0x02100000
#define PD_ERROR_OUTPUT_TRAY_FULL 0x02100100
#define PD_ERROR_WASTE_BIN_FULL 0x02100200
#define PD_ERROR_NO_PAPER_TRAY 0x02100300
#define PD_ERROR_NOT_RESPONDING 0x02400000
#define PD_ERROR_POWER_OFF 0x02400100
#define PD_ERROR_NOT_CONNECTED 0x02400200
#define PD_ERROR_REPORTS_BUSY 0x02400400
#define PD_ERROR_NO_ACKNOWLEDGE 0x02400800
#define PD_ERROR_SERVICE_CALL 0x02800000
#define PD_ERROR_HOST_IF_FAILURE 0x02800100
#define PD_ERROR_PRINTER_IF_FAILURE 0x02800200
#define PD_ERROR_REPORTS_FAILURE 0x02800400
/* Library execution error codes (PDerrno) - indices into PDerrlist array */
#define PD_LIB_ERROR -1 /* Indicates an error has occurred */
#define PD_LIB_NOERROR 0 /* No error detected */
#define PD_LIBERR_BAD_STRUCT 1 /* Invalid or NULL struct */
#define PD_LIBERR_BAD_MSG 2 /* Invalid message code */
#define PD_LIBERR_BAD_PNAME 3 /* Invalid printer name */
#define PD_LIBERR_STATUS_READ 4 /* Could not open/read status file */
#define PD_LIBERR_STATUS_WRITE 5 /* Could not open/write status file */
#define PD_LIBERR_CONFIG_READ 6 /* Could not open/read config file */
#define PD_LIBERR_NO_PRINTER 7 /* Printer not known to system */
#define PD_LIBERR_BAD_HOSTNAME 8 /* Invalid remote printer hostname */
#define PD_LIBERR_NETWORK 9 /* Unspecified network comm. problem */
#define PD_LIBERR_NET_TIMEOUT 10 /* Timeout trying to connect to host */
#define PD_LIBERR_NET_INTR 11 /* Interrupted while connectng */
#define PD_LIBERR_NET_NOTREG 12 /* podd deamon not registered with */
/* inetd on remote host */
#define PD_LIBERR_NET_PMAP 13 /* port mapper deamon failed on host */
#define PD_LIBERR_NET_NOPROC 14 /* new libpod function not supported */
/* by podd on remote host */
#define PD_LIBERR_NET_CLNTXDR 15 /* libpod and the kernel are */
/* mismatched - XDR differs */
#define PD_LIBERR_NET_SVCXDR 16 /* podd and the remote kernel are */
/* mismatched - XDR differs */
#define PD_LIBERR_NET_RPCMATCH 17 /* local and remote RPC software */
/* versions are incompatible */
#define PD_LIBERR_NET_PROCMATCH 18 /* local and remote libpod software */
/* versions are incompatible */
#define PD_LIBERR_MAX_MESSAGE 19 /* Too many messages to write */
#define PD_LIBERR_LOG_WRITE 20 /* Could not open/write log file */
#define PD_LIBERR_BAD_NENTRIES 21 /* Invalid number of log entries */
#define PD_LIBERR_LOG_READ 22 /* Could not open/read log file */
#define PD_LIBERR_BAD_MSGCNT 23 /* Invalid number of messages */
#define PD_LIBERR_CONFIG_WRITE 24 /* Could not open/write config file */
#define PD_LIBERR_NO_PAGESIZE 25 /* Page size for size code not found */
#define PD_LIBERR_BAD_SIZENAME 26 /* NULL page size name */
#define PD_LIBERR_NO_PAGECODE 27 /* Page size code for name not found */
/* POD message structure */
typedef struct _pdMessageStruct {
int message_code;
char message_text[PD_STR_MAX];
} PDMessageStruct;
/* POD media size table structure */
typedef struct _pdSizeTableStruct {
int media_size;
int horizontal_addr;
int vertical_addr;
float width;
float length;
float left_margin;
float top_margin;
char raster_definition;
char validation_mask;
char variable_page_size;
} PDSizeTableStruct;
/* POD Status file structure */
typedef struct _pdStatusStruct {
int operational_status;
int error_count;
int media_type;
int number_of_colors;
int media_size;
char printer_options[PD_STR_MAX];
char validation_mask;
} PDStatusStruct;
/* POD Config file structure */
typedef struct _pdInfoStruct {
char printer_class[PD_STR_MAX];
char printer_model[PD_STR_MAX];
char printer_options[PD_STR_MAX];
char location_code[PD_STR_MAX];
char physical_location[PD_STR_MAX];
char technology[PD_STR_MAX];
char config_path[PD_STR_MAX];
char driver_path[PD_STR_MAX];
char port_path[PD_STR_MAX];
char active_path[PD_STR_MAX];
int error_retry_wait;
int status_update_wait;
int media_wait;
int horizontal_resolution;
int vertical_resolution;
float cost_per_page;
int avg_time_per_page;
int max_time_per_page;
int min_number_of_colors;
int max_number_of_colors;
float min_area_horizontal;
float min_area_vertical;
float max_area_horizontal;
float max_area_vertical;
int min_addr_horizontal;
int min_addr_vertical;
int max_addr_horizontal;
int max_addr_vertical;
int quality_modes;
char **quality_mode_names;
int default_quality_mode;
int manual_capable;
int black_substitute;
int media_standard;
int avail_fonts;
char **avail_fonts_names;
int input_sources;
char **input_sources_names;
int default_input_source;
float input_source_gamma;
int color_adjustment;
char **color_adj_names;
int default_color_adj;
int media_types;
char **media_types_names;
int default_media_type;
int size_table_entries;
PDSizeTableStruct *size_table;
PDStatusStruct *active_status;
PDMessageStruct *error_status;
} PDInfoStruct;
/* POD Log file structure */
/* This structure describes a log file entry. The following
notes apply:
1. The job_id field may be NULL if no job ID was available
for the log entry.
2. The username field may be NULL if it was available for
the log entry.
3. The time_stamp is expressed in seconds as per time(2).
*/
typedef struct _pdLogStruct {
time_t time_stamp; /* Log entry time stamp from time(2) */
char *job_id; /* Print job ID */
char *username; /* Print job owner's user name */
PDMessageStruct entry; /* Log entry */
} PDLogStruct;
/* Public global variables */
extern char *PDpod_path; /* Path to the POD files */
extern int PDdebug; /* Debug flag. Set non-zero for runtime info */
extern long PDnet_timeout; /* Network communication timeout (seconds) */
extern int PDerrno; /* Error variable */
extern char *PDerrlist[]; /* Error strings */
extern int PDnerr; /* Number of error strings in SLerrlist */
/* Public function declarations */
#ifdef __cplusplus
extern "C" {
#endif
extern void PDPerror(const char*);
extern char* PDErrorString(int errCode);
extern int PDMakeMessage(PDMessageStruct*, int);
extern PDSizeTableStruct* PDFindPageSize(PDInfoStruct*, int);
extern int PDGetSizeCodeByName(char*);
extern char* PDGetNameBySizeCode(int);
extern int PDGetCurrentResolution(PDInfoStruct*, int*, int*);
extern int PDReadInfo(const char*, PDInfoStruct**, time_t*);
extern int PDLocalReadInfo(const char*, PDInfoStruct**, time_t*);
extern int PDLocalWriteInfo(const char*, PDInfoStruct*);
extern int PDReadLog(const char*, int, PDLogStruct**, time_t*);
extern int PDLocalReadLog(const char*, int, PDLogStruct**, time_t*);
extern int PDLocalWriteLog(const char*, const char*, const char*,
PDMessageStruct*);
extern int PDReadStatus(const char*, PDStatusStruct**,
PDMessageStruct**, time_t*);
extern int PDLocalReadStatus(const char*, PDStatusStruct**,
PDMessageStruct**, time_t*);
extern int PDReadOpStatus(const char*, int*, time_t*);
extern int PDLocalReadOpStatus(const char*, int*, time_t*);
extern int PDLocalWriteStatus(const char*, PDStatusStruct*,
PDMessageStruct*);
#ifdef __cplusplus
}
#endif
#endif /* _PD_POD_H */